package edu.nus.mtech.sem1.ca.utils;


/**
 * Only change is constant, but hey, here are some more.
 *
 */
public interface TelephonyConstants {
	
	public static final String USER_ROLE_PROP_FILE_LOCATION_KEY="user_role_prop_file_path_location";
	
	public static final String USER_DATA_FILE_LOCATION_KEY = "user_data_file_path_location";
	
	public static final String CUSTOMER_DATA_FILE_LOCATION_KEY = "customer_data_file_path_location";
	//For testing
	public static final String CUSTOMER_DATA_FILE_LOCATION_KEY_TEMP = "customer_data_file_path_location_temp";
	
	public static final String COMPLAINT_DATA_FILE_LOCATION_KEY = "complaint_data_file_path_location";
	//For testing
	public static final String COMPLAINT_DATA_FILE_LOCATION_KEY_TEMP = "complaint_data_file_path_location_temp";
	
	public static final String LOG_FILE_LOCATION = "log_file_location";
	
	public static final String BANNER_FILE_LOCATION = "banner_file_location";
	
	
	public static final String RATE_DATA_FILE_LOCATION_KEY = "rate_data_file_path_location";
	
	public static final String TXN_DATA_FILE_LOCATION_KEY = "txn_data_file_path_location";
	
	public static final String ACCOUNT_PLAN_MAPPING_DATA_FILE_LOCATION_KEY = "account_plan_mapping_data_file_path_location";
	//For testing
	public static final String ACCOUNT_PLAN_MAPPING_DATA_FILE_LOCATION_KEY_TEMP = "account_plan_mapping_data_file_path_location_temp";
	
	public static final String PAYMENT_HISTORY_DATA_FILE_LOCATION_KEY ="payment_history_data_file_path_location";
	
	public static final String TELEPHONY_APPLICATION_PROPERTIES_FILE_NAME="TelephonyApplication.properties";
	
	public static final String COMMA=",";
	
	public static final String SEMICOLON = ";";

	
	//Access
	public static final String ACCESS_VIEW_CLIENT_DATA="VIEW_CLIENT_DATA";
	public static final String ACCESS_VIEW_CLIENT_COMPLAINTS="VIEW_CLIENT_COMPLAINTS";
	public static final String ACCESS_LOG_COMPLAINTS="LOG_COMPLAINTS";
	
	
	//ERROR MESSAGES
	public static final String ERR_COULD_NOT_LOAD_APP_CONFIG="Could not load Application Configuration. Exiting....";
	
	public static final String ERR_COULD_NOT_LOAD_APP_DATA="Could not load data from database files. Shutting down JVM...";
	
	public static final String ERR_COULD_NOT_LOAD_USER_ROLE_FILE="Could not locate location of UserRole properties. ";
	
	public static final String ERR_COULD_NOT_LOAD_USER_ROLE_DATA="UserRole file found but data could not be loaded. ";

	public static final String ERR_KEY_NOT_FOUND_FOR_PROPERTY = "Key not found for Property";
	
	public static final String ERR_USER_NOT_AUTHORIZED_TO_VIEW_COMPLAINTS = "User is not authorized to view the complaints data of the client";
	
	public static final String ERR_USER_IS_NULL = "User is null";
	
	public static final String ERR_WRONG_DATA_INPUT_FORMAT = "Data input format is wrong.";

	public static final String ERR_USER_NAME_PASSWORD_NULL = "User name/Password is null";

	public static final String ERR_NO_CUSTOMER_FOUND = "No customer matched the Search Criteria";
	
	public static final String ERR_DUPLICATE_VALUE_ADDED_SERVICE= "Error while adding Value Added Service. Duplicate found";
	
	public static final String ERR_DUPLICATE_PLAN= "Error while adding Plan. Duplicate found";
	
	public static final String ERR_CUSTOMER_NOT_FOUND= "No customer matches your search criteria.";
	
	public static final String ERR_ENTER_NRIC= "Please enter an NRIC.";
	
	public static final Object ERR_SELECT_A_ROW = "Please select a row to operate";	
	
	public static final String ERR_USER_DATA_NOT_AVAIL="Authorized user list is not available to proceed. Please contact administrator!";
	
	//Messages
	
	public static final String MSG_NO_COMPLAINTS_FOUND = "No complaints found for this client";
	public static final String MSG_SAVED_SUCCESSFULLY = "Saved successfully!";
	public static final String MSG_SAVED_FAIL = "Failed to save the information!";
	public static final String MSG_CHOOSE_SERVICE_TYPE ="Please choose service type!";
	public static final String MSG_KEYIN_NRIC="Please key-in Customer's NRIC!";
	public static final String MSG_KEYIN_ACCTNO="Please key-in Account number!";
	public static final String MSG_KEYIN_NAME="Please key-in Customer's name!";
	public static final String MSG_KEYIN_DV_NUMBER="To activate Digital voice, please assign a number!";
	public static final String MSG_KEYIN_MV_NUMBER="To activate Mobile voice, please assign a number!";
	public static final String MSG_KEYIN_INVALID_EMAIL="Email is invalid!";

	//Rates Constants
	
	public static final String RATE_DVOICE_SUBSCRIPTION="DVCSubscription";
	public static final String RATE_DVOICE_CALL_TRANSFER="DVCCallTransfer";
	public static final String RATE_DVOICE_LOCAL_CALLS_PER_MINUTE="DVCLocalCalls_PerMinute";
	public static final String RATE_DVOICE_INT_CALLS_PER_MINUTE="DVCInternationalCalls_PerMinute";
	public static final String RATE_MOBILE_SUBSCRIPTION="MobileSubscription";
	public static final String RATE_MOBILE_DATA_SERVICE="MobileDataService";
	public static final String RATE_MOBILE_LOCAL_CALLS_PER_MINUTE="MobileLocalCalls_PerMinute";
	public static final String RATE_MOBILE_INT_CALLS_PER_MINUTE="MobileInternationalCalls_PerMinute";
	public static final String RATE_MOBILE_ROAMING_CALLS="MobileRoamingCalls";
	public static final String RATE_MOBILE_ROAMING_SUBSCRIPTION="MobileRoamingSubscription";
	public static final String RATE_CABLE_SUBSCRIPTION="CableTVSubscription";
	public static final String RATE_CABLE_CHANNEL="CableTVChannel";
	
	//HEADER for Customer information
	public static final String HEADER_CUSTOMER="NRIC;NAME;ADDRESS;INTERESTS;EMAIL;STATUS;ACCOUNT_NUMBER";
	public static final String HEADER_COMPLAINTS="NRIC;ACCOUNT_NO;SERVICE;COMPLAINT_NO;COMPLAINT_DATE;COMPLAINT_DESC;STATUS";
	public static final String HEADER_ACCOUNT_PLAN_MAPPING="ACCOUNT_NUMBER,PLAN_ID,PLAN_TYPE,VALUE_ADDED_ID,VALUE_ADDED_TYPE,DATE_COMMENCED,DATE_TERMINATED,TELEPHONE_NUMBER,ADDITIONAL_CHANNELS,SUBSCRIPTION_STATUS";

	public static final String EMAIL_PATTERN = "^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
	
	
}
